home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Purity
/
Purity #42 (1995-01)(PackMAN)(DE)[WB].zip
/
Purity #42 (1995-01)(PackMAN)(DE)[WB].adf
/
Includes3v1
/
Includes3v1.lha
/
Rexx
/
RexxIO.i
< prev
next >
Wrap
Text File
|
1994-12-04
|
4KB
|
134 lines
{ === rexx/rexxio.h ====================================================
*
* Copyright (c) 1986, 1987 by William S. Hawes. All Rights Reserved.
*
* ======================================================================
* Header file for ARexx Input/Output related structures
}
{$I "Include:Rexx/Storage.i"}
Const
RXBUFFSZ = 204; { buffer length }
{
* The IoBuff is a resource node used to maintain the File List. Nodes
* are allocated and linked into the list whenever a file is opened.
}
Type
IoBuff = record
iobNode : RexxRsrc; { structure for files/strings }
iobRpt : Address; { read/write pointer }
iobRct : Integer; { character count }
iobDFH : Integer; { DOS filehandle }
iobLock : Integer; { DOS lock }
iobBct : Integer; { buffer length }
iobArea : Array [0..RXBUFFSZ-1] of Byte;
{ buffer area }
end; { size: 256 bytes }
IoBuffPtr = ^IoBuff;
Const
{ Access mode definitions }
RXIO_EXIST = -1; { an external filehandle }
RXIO_STRF = 0; { a "string file" }
RXIO_READ = 1; { read-only access }
RXIO_WRITE = 2; { write mode }
RXIO_APPEND = 3; { append mode (existing file) }
{
* Offset anchors for SeekF()
}
RXIO_BEGIN = -1; { relative to start }
RXIO_CURR = 0; { relative to current position }
RXIO_END = 1; { relative to end }
{
* A message port structure, maintained as a resource node. The ReplyList
* holds packets that have been received but haven't been replied.
}
Type
RexxMsgPort = record
rmp_Node : RexxRsrc; { linkage node }
rmp_Port : MsgPort; { the message port }
rmp_ReplyList : List; { messages awaiting reply }
end;
RexxMsgPortPtr = ^RexxMsgPort;
Const
{
* DOS Device types
}
DT_DEV = 0; { a device }
DT_DIR = 1; { an ASSIGNed directory }
DT_VOL = 2; { a volume }
{
* Private DOS packet types
}
ACTION_STACK = 2002; { stack a line }
ACTION_QUEUE = 2003; { queue a line }
Function CloseF(iob: IoBuffPtr): Boolean;
External;
Function CreateDOSPkt : Address;
External;
Procedure ClosePublicPort(nod : RexxMsgPortPtr);
External;
Procedure DeleteDOSPkt(msg : Address);
External;
Function OpenPublicPort(list: ListPtr; name: String): RexxMsgPortPtr;
External;
Function RexxDOSRead(filehandle : Address;
buffer : Address; len : Integer): Integer;
External;
Function RexxDOSWrite(filehandle : Address;
buffer : Address; len : Integer): Integer;
External;
Function ExistF(filename : String): Boolean;
External;
Function FindDevice(name: String; tp: Integer): Address;
External;
Function OpenF(list: ListPtr; name: String; mode: Integer; log : String) : IOBuffPtr;
External;
Function QueueF(iob: IoBuffPtr; buf : String; len : Integer): Integer;
External;
Function ReadF(iob: IoBuffPtr; buf : String; len : Integer): Integer;
External;
Function ReadStr(iob: IoBuffPtr; buf : Address; len: Integer;
var ptr : Address) : Integer;
External;
Function SeekF(iob: IoBuffPtr; off : Integer; anchor: Integer): Integer;
External;
Function StackF(iob: IoBuffPtr; buf : String; len : Integer): Integer;
External;
Function WriteF(iob: IoBuffPtr; buf: Address; len: Integer): Integer;
External;